﻿#region << 版 本 注 释 >>
/*----------------------------------------------------------------
 * 创建者：zhaijc
 * 创建时间：2023/4/14 14:23:55
 * 版本：V1.0.0
 * 描述：
 *
 * ----------------------------------------------------------------
 * 修改人：
 * 时间：
 * 修改说明：
 *
 * 版本：V1.0.1
 *----------------------------------------------------------------*/
#endregion << 版 本 注 释 >>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MedianSocketService.netty
{
    public class SocketClientInfo
    {

        public string Ip { get; set; }
        public int Port { get; set; }
        public string CmdName { get; set; }
        public string Remark { get; set; }

        public override string? ToString()
        {
            return $"Ip={Ip};Port={Port}";
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public override bool Equals(object? obj)
        {
            return this.ToString().Equals(obj.ToString());
        }

        /// <summary>
        /// GetHashCode()是一个方法，它返回当前对象的哈希码，这个哈希码通常用于在哈希表中查找对象。哈希码是一个整数值，在 .NET 中，它由 int 类型表示。
        ///哈希码的作用是通过计算对象的哈希码来判断两个对象是否相等。如果两个对象的哈希码相同，则它们可能相等，但是如果哈希码不同，则它们一定不相等。
        /// </summary>
        /// <returns></returns>
        public override int GetHashCode()
        {
            unchecked // Overflow is fine, just wrap
            {
                int hash = 17;
                hash = hash * 23 + BitConverter.ToInt32(Encoding.UTF8.GetBytes(ToString()), 0);
                return hash;
            }
        }
    }
}
